/**
 * @file spi.h
 * @author leijiapeng (email:leijiapeng123@163.com)
 * @brief  软件spi
 * @version 0.1
 * @date 2025-09-18
 *
 * @copyright Copyright (c) 2025
 *
 */

#ifndef __SPI_H
#define __SPI_H

#include "stdint-gcc.h"

#define MySPI_CS_GPIO_PORT   GPIOB
#define MySPI_CS_GPIO_PIN    GPIO_PIN_6

#define MySPI_SCK_GPIO_PORT  GPIOB
#define MySPI_SCK_GPIO_PIN   GPIO_PIN_3

#define MySPI_MOSI_GPIO_PORT GPIOB
#define MySPI_MOSI_GPIO_PIN  GPIO_PIN_5

#define MySPI_MISO_GPIO_PORT GPIOB
#define MySPI_MISO_GPIO_PIN  GPIO_PIN_4

/**
 * @brief  SPI初始化，将CS拉高，SCK拉低
 *
 */
void MySPI_Init(void);

/**
 * @brief  选中SPI设备
 *
 */
void MySPI_Start(void);

/**
 * @brief  取消SPI设备选中
 *
 */
void MySPI_Stop(void);

/**
 * @brief  SPI主从交换一个字节数据
 *
 * @param[in] ByteSend 主机交换给从机的数据
 * @return uint8_t 主机接收的从机的数据
 */
uint8_t MySPI_SwapByte(uint8_t ByteSend);

#endif // !__SPI_H
